草庐IT

c++ - Eclipse C++ dll导入

全部标签

windows - 如何在不实际调用 LoadLibrary 的情况下找到 DLL 的完整路径?

如果我调用LoadLibrary("foo.dll"),它会查找系统上的不同位置,选择最佳匹配,然后加载该库。我想在实际加载它之前找到该文件的完整路径。有没有简单的方法可以做到这一点?到目前为止,我的google-fu让我失望了,但似乎直观地说有一些功能可以做到这一点。我当前的解决方案是使用LOAD_LIBRARY_AS_DATAFILE标志实际调用LoadLibraryEx,然后在结果上调用GetModuleFileName;在此之后我假设我将不得不释放库并在没有此标志的情况下重新加载它,但这似乎是一种迂回的方法。有没有更好的办法?ResolvePathFromDllName也许?

windows - Delphi7 > MSMQ 3.0 失败的导入类型库 (TLB)。 "Element not found"错误

我正在尝试从mqoa.tlb或mqoa.dll的Delphi7>Project>ImportTypeLibrary创建单元,在WinXP和Win2003上,甚至在Win7x64上(都是mqoa30.tlb和mqoa.tlb(或*.dll),代表MSMQ4.0)-每次它都失败并出现错误“找不到元素”。根据MSMQ版本,在Windows2003和WindowsXP上安装了“MSMQ3.0”,但在我的旧项目中,我从mqoa20.tlb("C:\WINDOWS\system32\mqoa20.tlb”)。我想切换到MSMQ3.0接口(interface),但我不能。有什么建议吗?顺便说一下,曾

c++ - 为什么我的 DLL 被 MSE 检测为可疑?

MicrosoftSecurityEssentials不断提示我将我自己的一个DLL(用nativeC++编写)发送给Microsoft以进行进一步分析,因为(我猜)存在某种可疑行为。我想找出为什么MSE认为我的DLL可疑。DLL是我用nativeC++开发的3D游戏的客户端相关代码。它所做的只是使用套接字api连接到服务器,处理来自服务器的传入消息,处理鼠标和键盘输入(通过OIS-面向对象的输入系统),处理一些Windows消息(调整大小/最小化/退出等)和实现游戏的主循环,它基本上调用我单独的renderer.dll中的函数(这对MSE没问题)。我不会说什么了不起的。我将dll提交

windows - 可执行加载与已加载的 dll 相同的 dll

我即将开始对我的项目进行重大修改,我只是想澄清一些事情,因为我认为我的设计可能有些复杂。我有一个加载dll的可执行文件,我们称之为dll1,然后加载dll2。可执行文件还加载dll2。我要问的是,我是否有两个dll2的全局和静态成员变量实例,dll2的第二次加载是否发生,或者即使dll2由不同的dll加载,可执行文件是否只能加载dll2的第一个?我知道我应该在内存中只有一份dll2代码副本,这很好。我感兴趣的是全局变量和静态变量。 最佳答案 每个进程只能加载任何特定DLL的一个实例。 关

c - MSVC 生成的符号表中 __real、__imp、__xmm 符号的含义

我是一名UNIX开发人员,负责帮助维护一些Windows软件,我正在查看.DEF生成器同时修复错误。它不包括__xmm,__real和__imp-来自导出的前缀符号。我一直在努力弄清楚这些符号到底是什么。很明显,它们不需要出现在.DEF中。文件(如果它们需要在DLL接口(interface)上导出,编译器将__declspec(dllexport)对其自身进行注释)但是......它们是什么?看起来排除__imp的目的前缀是排除functioncallthunks.正确吗?搜索MSDN未提供有关__xmm的信息或__real(顺便说一句,使用social.msdn.microsoft.

windows - 等待程序加载 DLL,然后将其挂起

我想在程序加载后立即挂接一个api。为此,我使用带有适当标志集的createprocess,以便创建暂停的进程。我放下钩子(Hook),然后恢复它。但是当我尝试连接一个不是来自ntdll.DLL的api时,我得到一个ERROR_INVALID_ADDRESS(487)。如果我等到程序开始放置钩子(Hook),我可以毫不费力地完成。这让我相信进程在启动时不会加载每个DLL(即使它们是静态链接的),并且在iat上与apiI对应的内存区域之前需要进行一些初始化想要Hook,有效并准备好被访问。我在这儿吗?如果是这样,我该怎么做才能知道何时放置Hook?谢谢!PD:我正在为我future的论文

c++ - 在 MS VC 2013 Express 中将 C++ dll 从 32 位转换为 64 位

我的代码可以在32位和64位配置中编译,但只有第一个运行良好。我用depends.exe打开库,如果是64位,我会看到两条错误消息:Error:Atleastonemodulehasanunresolvedimportduetoamissingexportfunctioninanimplicitlydependentmodule.Error:ModuleswithdifferentCPUtypeswerefound.在depends.exe的模块列表中,我看到我的dll的CPU类型是x64,但其他一切都是x86(其他一切都应该是动态链接的)。在动态链接的情况下,如何告诉VC使用64位库

c++ - DLL 无法在 Windows Server 2012 中加载

我用VS2005编写的应用程序是一个32位软件。它在WindowsServer2008、Windows7(64位)上运行良好,但不能在WindowsServer2012上运行。我试图找出缺少哪个DLL,因为我从LoadLibrary收到错误消息“动态链接库(DLL)初始化例程失败”。错误代码如下m_plugin=LoadLibrary(pluginPath.c_str());if(!m_plugin){conststringerror("FailedtoloadLibrary\""+pluginPath+"\""+GetLastErrorStdStr());CBLogger::log(

c++ - Windows 上 GnuMP 库的 dll 构建过程

有人可以告诉我在Windows上构建gnuMP库的过程吗?我需要一个gnuMP库的DLL,但构建系统不允许我为Windows操作系统创建dll库。我尝试使用MinGW和Cygwin进行构建,但未创建dll。 最佳答案 我遇到过同样的问题。但我已经成功地在Windows上构建了GnuMP库的dll在Windows系统上,'--cygwin*'、'--mingw*'和'--pw32*'默认为GMP仅构建一个静态库,但可以构建一个DLL而不是使用./configure--disable-static--enable-shared不能同时构

c# - 创建一个包含 GUI 组件的 .dll 库 windows phone 8

我必须创建一个我想在其他项目中引用的库。但是我想包括在其他项目中。所以基本上当有一个按钮点击时我必须切换到我的图书馆创建的应用程序页面。有没有办法在windowsphoneSDK中做这种项目。我正在使用visualstudio2012forwindowssdk8。 最佳答案 您可以使用标准WindowsPhone类库项目创建此类库。您可以向该项目添加页面和类,就好像它是一个常规的WindowsPhone应用程序项目一样。要导航到驻留在类库中的页面,请使用此处提供的示例:http://www.geekchamp.com/tips/wp